package com.agl.api.dto.material;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value="物料管理")
public class InvMaterialInfoDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "物料id")
    private Long materialId;

    @ApiModelProperty(value = "订购价格")
    private BigDecimal orderPrice;

    @ApiModelProperty(value = "采购数量")
    private BigDecimal orderQty;

    @ApiModelProperty(value = "子物料数量")
    private BigDecimal materialQty;

    @ApiModelProperty(value = "物料编号")
    private String materialCode;

    @ApiModelProperty(value = "物料名称")
    private String materialName;

    @ApiModelProperty(value = "物料型号")
    private String materialMode;

    @ApiModelProperty(value = "物料描述")
    private String materialDescription;

    @ApiModelProperty(value = "物料分类,1:成品,2:备件")
    private Integer materialClassify;

    @ApiModelProperty(value = "速查码")
    private String quickCode;

    @ApiModelProperty(value = "产品生产地址")
    private String generatedAddress;

    @ApiModelProperty(value = "物料单位（参数定义）")
    private Long materialUnit;

    @ApiModelProperty(value = "保修期（天）")
    private Integer warrantyPeriod;

    @ApiModelProperty(value = "开始生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime materialStartTime;

    @ApiModelProperty(value = "停止生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime materialStopTime;

    @ApiModelProperty(value = "创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime CreatedDateTime;


    @ApiModelProperty(value = "是否安装")
    private Long isInstall;

    @ApiModelProperty(value = "是否保养")
    private Long isMaintain;

    @ApiModelProperty(value = "保养周期（天）")
    private Integer maintainDay;

    @ApiModelProperty(value = "保修期内是否返厂")
    private Long warrantyIsRecycle;

    @ApiModelProperty(value = "保修期外是否返厂")
    private Long noWarrantyIsRecycle;

    @ApiModelProperty(value = "是否允许外采")
    private Long isOutsource;

    @ApiModelProperty(value = "是否通用")
    private Long isCommon;

    @ApiModelProperty(value = "是否启用")
    private Long isEnabled;

    @ApiModelProperty(value = "是否停产")
    private Long isStop;

    @ApiModelProperty(value = "备注")
    private String materialRemark;

    @ApiModelProperty(value = "单位键")
    private Long paraId;

    @ApiModelProperty(value = "单位值")
    private String paraName;

    @ApiModelProperty(value = "物料类型名称")
    private String materialTypeName;

    @ApiModelProperty(value = "物料类型ID")
    private Long materialTypeId;

    @ApiModelProperty(value = "创建日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdDateTime;

    @ApiModelProperty(value = "修改日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime modifiedDateTime;

    @ApiModelProperty(value = "创建人员编号")
    private Long createdBy;

    @ApiModelProperty(value = "创建人员名称")
    private String createdByName;

    @ApiModelProperty(value = "修改人员编号")
    private Long modifiedBy;

    @ApiModelProperty(value = "创建人员名称")
    private String modifiedByName;

    @ApiModelProperty(value = "创建公司ID")
    private Long createdCompanyId;

    @ApiModelProperty(value = "创建公司名称")
    private String createdCompanyIdName;

    @ApiModelProperty(value = "修改公司ID")
    private Long modifiedCompanyId;

    @ApiModelProperty(value = "修改公司名称")
    private String modifiedCompanyIdName;
}
